/*
 * rotate.h
 *  Description:图像原地(In-place)旋转/翻转
 *  Created on: 2019年3月8日
 *      Author: guyadong
 */

#ifndef SRC_ROTATE_H_
#define SRC_ROTATE_H_
namespace gdface{
namespace jimgutil{
/**
 * 将输入图像 顺时针原地旋转(In-place matrix transposition)指定的角度<br>
 * 图像必须是1字节对齐，多字节对齐的图像旋转可能会造成图像错位
 * @param input 输入图像矩阵,size=width*height*bpp
 * @param width 图像宽度
 * @param height 图像宽度
 * @param bpp 每像素字节数(1,2,3,4)
 * @param angle 顺时针旋转角度(0,90,180,270)
 * @return 0-成功,-1 null pointer,-2 invalid argument
 */
int rotate(void* input,int width,int height,int bpp,int angle) noexcept;
/**
 * 图像水平原地翻转(In-place)<br>
 * 图像必须是1字节对齐，多字节对齐的图像旋转可能会造成图像错位
 * @param input 输入图像矩阵,size=width*height*bpp
 * @param width
 * @param height
 * @param bpp 每像素字节数(1,2,3,4)
 * @return 0-成功,-1 null pointer,-2 invalid argument
 */
int hflip(void* input,int width,int height,int bpp) noexcept;
/**
 * 图像垂直原地翻转(In-place)<br>
 * 图像必须是1字节对齐，多字节对齐的图像旋转可能会造成图像错位
 * @param input 输入图像矩阵,size=width*height*bpp
 * @param width
 * @param height
 * @param bpp 每像素字节数(1,2,3,4)
 * @return 0-成功,-1 null pointer,-2 invalid argument
 */
int vflip(void* input,int width,int height,int bpp) noexcept;
} /** namespace jimgutil*/
} /** namespace gdface */
#endif /* SRC_ROTATE_H_ */
